﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Client.Response.Trade
{
    /// <summary>
    /// 支付通道响应
    /// </summary>
    public class PayChannelResponse
    {
        /// <summary>
        /// 申请Id
        /// </summary>
        public string ApplyId { get; set; }

        /// <summary>
        /// 通道Id
        /// </summary>
        public string ChannelId { get; set; }

        /// <summary>
        /// 客户端Ip
        /// </summary>
        public string ClientIP { get; set; }

        /// <summary>
        /// 付款id
        /// </summary>
        public string PayId { get; set; }

        /// <summary>
        /// 付款Url
        /// </summary>
        public string PayUrl { get; set; }

        /// <summary>
        /// 付款参数
        /// </summary>
        public string PayParams { get; set; }

        /// <summary>
        /// 调用类型
        /// </summary>
        public TradePayApplyResultCallType CallType { get; set; }

        /// <summary>
        /// 开始时间
        /// </summary>
        public DateTime StartTime { get; set; }

        /// <summary>
        /// 到期时间
        /// </summary>
        public DateTime ExpireTime { get; set; }
    }

    /// <summary>
    /// 交易付款申请结果调用类型
    /// </summary>
    [Serializable]
    public enum TradePayApplyResultCallType
    {
        /// <summary>
        /// App Url 参数
        /// </summary>
        App_Url = 1,

        /// <summary>
        /// APP JSON参数
        /// </summary>
        App_Json = 2,

        /// <summary>
        /// Web 脚本
        /// </summary>
        Web_Script = 11,

        /// <summary>
        /// Web 二维码
        /// </summary>
        WEB_Qrcode = 12,

        /// <summary>
        /// Web Post
        /// </summary>
        Web_Post = 13,
        /// <summary>
        /// Web Get
        /// </summary>
        Web_Get = 14,

        /// <summary>
        /// 等待短信验证
        /// </summary>
        Wait_SmsCheck = 90,

        /// <summary>
        /// 直接支付成功(如部份协议支付)
        /// </summary>
        PaySuccess = 99
    }

}
